System for exchanging information in a battery mailbox

ABSTRACT

A system having a battery, a battery support unit, and an electronic device provides for the exchange of information between the battery support unit and the electronic device via a mailbox in memory in the battery. When the battery is placed in the battery support unit, the battery support unit tests the battery for an error condition. If the battery support unit finds an error condition with the battery, it transmits error data to a mailbox located in the battery&#39;s memory. When the battery is then removed from the battery support unit and placed in an electronic device, the electronic device can read the error data in the mailbox and take an appropriate action. For example, the electronic device reads the mailbox and find the error data placed there by the battery support unit. In response to finding this error data, the electronic device enables an indicator, such as an indicator that informs a user that maintenance needs to be performed on the battery. The user can continue using the battery, knowing that its operation is likely to be unreliable, or can remove it from the electronic device and insert it into the battery support unit for maintenance. When battery maintenance has been selected, the battery support unit reconditions the battery by performing a predetermined number of charge/discharge cycles, and also performs additional testing on the battery.

CROSS REFERENCE TO RELATED APPLICATIONS

This invention is related to the following commonly assigned patent applications, filed on even date herewith.

    ______________________________________                                         Serial Number                                                                               Title                                                             ______________________________________                                         08/442,550   Battery Support Unit For Exchanging                                            Information With A Battery Mailbox                                08/441,898   Battery Powered Electronic Device For                                          Exchanging Information With A                                                  Battery Mailbox                                                   08/441,900   Battery Having A Battery Mailbox For                                           Exchanging Information                                            ______________________________________                                    

FIELD OF THE INVENTION

This invention relates to the electronics circuitry field. More particularly, this invention is a system for exchanging information in a battery mailbox.

BACKGROUND OF THE INVENTION

It has been known for decades that electronic devices can be powered by batteries. Early electronic devices, such as transistor radios, were among the first such devices to be powered by batteries. Later electronic devices to be battery powered include dictation machines, CD players, portable computers, and even transportable medical equipment such as ambulatory heart monitors and defibrillators.

While the lack of intelligence of early electronic devices were a good match for the lack of intelligence of early batteries, the situation today is not so evenly matched. Electronic devices have gotten dramatically more intelligent, advanced and complicated over the years, while batteries have until recently stayed pretty much the same--dumb hunks of encased chemicals that provide power to just about anything hooked up between its contacts until the energy stored in the battery is depleted. An advancement was made when dumb batteries came in two styles--disposable and rechargeable--but being rechargeable didn't make the batteries any smarter.

While a dumb electronic device such as a transistor radio doesn't much care if it is powered by a dumb battery, smarter electronic devices such as computers and medical devices have a higher degree of dependence on a battery that can provide a known amount of power for a known amount of time in a reliable manner. When such smart electronic devices are hooked up to dumb batteries that can die without notice or warning, the operation of the electronic device itself can be undesirably uninterrupted. This interruption can range from annoying--as in the case of a portable computer whose battery unexpectedly dies while its user is composing the world's greatest novel, to deadly--as in the case of a transportable defibrillator whose battery dies during an attempt to resuscitate a patient whose heart is in ventricular fibrillation.

In the last couple of years, so-called "smart" batteries have arrived on the scene to partially address the above problem. These smart batteries, such as those described in the Intel/Duracell Smart Battery Specifications Manual, is defined as a battery pack that contains one or more of the following properties: chemistry self-identification, charge control, fuel gauging, or a communication port. These properties allow a smart electronic device to query the battery and find out what kind of battery it is and how much "fuel", or charge, it has left.

While smart batteries provide information that is helpful in avoiding some of the ways the operation of an electronic device can be interrupted due to unexpected battery failure, they only address a portion of the ways the operation of an electronic device can be interrupted due to unexpected battery failure. Specifically, smart batteries that are working as designed and intended can tell an electronic device in a fairly reliable manner how much power it has left. But smart batteries that are not operating in an expected manner, such as batteries that have been abused, are leaking, are out of calibration, or have an internal error such as a short or open circuit, cannot be trusted to give accurate information about themselves. In these cases, the battery may believe it has several minutes or hours of charge left when in fact it is dead or nearly dead. While this shortcoming of these smart batteries may be tolerable in electronic devices where unexpected battery failure is a simple annoyance, it cannot be tolerated in electronic devices where unexpected battery failure can result in the failure of a defibrillator to revive a patient whose heart is in ventricular fibrillation.

SUMMARY OF THE INVENTION

A system having a battery, a battery support unit, and an electronic device provides for the exchange of information between the battery support unit and the electronic device via a mailbox in memory in the battery. When the battery is placed in the battery support unit, the battery support unit tests the battery for an error condition. If the battery support unit finds an error condition with the battery, it transmits error data to a mailbox located in the battery's memory. When the battery is then removed from the battery support unit and placed in an electronic device, the electronic device can read the error data in the mailbox and take an appropriate action. For example, the electronic device reads the mailbox and find the error data placed there by the battery support unit. In response to finding this error data, the electronic device enables an indicator, such as an indicator that informs a user that maintenance needs to be performed on the battery. The user can continue using the battery, knowing that its operation is likely to be unreliable, or can remove it from the electronic device and insert it into the battery support unit for maintenance. When battery maintenance has been selected, the battery support unit reconditions the battery by performing a predetermined number of charge/discharge cycles, and also performs additional testing on the battery.

DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of the battery support unit, battery, and electronic device of the system of the preferred embodiment of the invention.

FIG. 2 shows the organization of the battery memory in the preferred embodiment of the invention.

FIG. 3 shows the mailbox contained in the battery memory in the preferred embodiment of the invention in more detail.

FIG. 4 shows the user interface contained in the battery support unit of the preferred embodiment of the invention.

FIG. 5 shows the user interface contained in the electronic device of the preferred embodiment of the invention.

FIGS. 6-7 show the flowchart of the charging operation of the battery support unit of the preferred embodiment of the invention.

FIGS. 8-10 show the flowchart of the maintenance operation of the battery support unit of the preferred embodiment of the invention.

FIG. 11 shows the flowchart of the operation of the electronic device of the preferred embodiment of the invention.

FIG. 12 shows the flowchart of the operation of the battery of the preferred embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a block diagram of the battery support unit, battery, and electronic device of system 10 of the preferred embodiment of the invention. Battery support unit 20 contains support unit processor 21 connected to support unit circuitry 28 and support unit user interface 60. Support unit user interface 60 will be discussed in more detail later in conjunction with the discussion of FIG. 4. Processor 21 is suitably programmed to execute the flowcharts of FIGS. 6-7 and 8-10 of this invention. Processor 21 contains charger logic unit 22, test logic unit 23, and maintenance logic unit 24. In the preferred embodiment, the functions of logic units 22-24 are performed by software executing the flowcharts of FIGS. 6-7 and 8-10 of the invention, although specific hardware could be fabricated to perform the function of one or more of these logic units, either within processor 21 or in one or more other hardware integrated circuits or other devices, and still fall within the spirit and scope of the invention. In the preferred embodiment, battery support unit 20 charges, tests, and maintains defibrillator batteries, although other battery support units could be used to perform these or different functions and still fall within the spirit and scope of the invention.

Battery 30 contains battery processor/circuitry 31 connected to battery storage cells 38 and battery memory 40. Contained in battery memory 40 is mailbox 50. Both battery memory 40 and mailbox 50 will be discussed later in conjunction with the discussion of FIGS. 2 and 3. Processor/circuitry 31 is suitably programmed to execute the flowchart of FIG. 12 of this invention. Processor/circuitry 31 contains communications logic unit 32. In the preferred embodiment, the functions of logic unit 32 are performed by software executing the flowchart of FIG. 12 of the invention, although specific hardware could be fabricated to perform the function of this logic unit, either within processor/circuitry 21 or in one or more other hardware integrated circuits or other devices, and still fall within the spirit and scope of the invention. Thermistor 35 and battery ID resistor 36 are also contained in battery 30. Thermistor 35 is used to measure the temperature of battery 30, in a manner that will be discussed later. Battery ID resistor 36 is used to uniquely identify the type of battery 30, based on a measured voltage across this resistor. In the preferred embodiment, battery 30 communicates with battery support unit 20 and/or electronic device 80 via six data lines, as follows:

1. Ground

2. V+

3. V+

4. Communications line

5. ID resistor

6. Thermistor

In the preferred embodiment, battery storage cells 38 is a Sanyo NiCAD rechargeable battery, and components 31, 32, and 40 are contained on a Benchmarq bq2010 chip, although battery 30 could be a different type made by a different manufacturer or according to a different standard and still fall within the spirit and scope of the invention. An alternate embodiment has been contemplated where battery 30 just contains storage cells 38 and battery memory 40, where data can be read out of and written to memory 40. In this embodiment, battery memory 40 could be an Econoram RAM with serial port protocol communications, or an EEPROM formatted in accordance with the invention.

Electronic device 80 contains device processor 81 connected to device circuitry 88 and device user interface 90. Device user interface 90 will be discussed in more detail later in conjunction with the discussion of FIG. 5. Processor 81 is suitably programmed to execute the flowchart of FIG. 11 of this invention. Processor 81 contains device logic unit 82, and battery monitor logic unit 83. In the preferred embodiment, the function of logic unit 83 is performed by software executing the flowchart of FIG. 11 of the invention, although specific hardware could be fabricated to perform the function of this logic unit, either within processor 81 or in one or more other hardware integrated circuits or other devices, and still fall within the spirit and scope of the invention. In the preferred embodiment, electronic device 80 is a defibrillator/heart monitor, although other devices, such as a defibrillator or a portable computer, could be used and still fall within the spirit and scope of the invention.

As will be described in more detail later, the bi-directional arrows shown in FIG. 1 symbolize the operation of the preferred embodiment of the invention. When battery 30 is placed in or otherwise connected to battery support unit 20, battery support unit 20 tests battery 30 for an error condition. If battery support unit 20 finds an error condition with battery 30, it transmits error data 51 to mailbox 50 located in battery memory 40. When battery 20 is then removed or otherwise disconnected from battery support unit 20 and placed in or otherwise connected to electronic device 80, electronic device 80 can read error data 51 in mailbox 50 and take an appropriate action. For example, electronic device 80 reads mailbox 50 and finds error data 51 placed there by battery support unit 20. In response to finding error data 51, electronic device 80 enables an indicator, such as indicator 91 in device user interface 90, that informs a user that maintenance needs to be performed on battery 20. The user can continue using battery 20, knowing that its operation is likely to be unreliable, or can remove it from electronic device 80 and insert it into battery support unit 20 for maintenance. When battery maintenance has been selected, battery support unit 20 reconditions battery 30 by charging and discharging the battery a predetermined number of times, and also performs additional testing on battery 30.

FIG. 2 shows battery memory 40 in more detail. Memory 40 contains a number of registers 41-1 to 41-12. These registers contain status information about battery 40, such as temperature, available charge, and number of times charged. In the preferred embodiment, memory 40 is organized according to the Benchmarq 2010 data sheet, generally available to the public as of the date of this invention.

Memory 40 also contains register 50. Register 50 is identified in FIG. 2 as "BATID", or "Battery Identification Register". In the Benchmarq 2010 data sheet, this field is described as follows:

The read/write BATID register (address=04h) is available for use by the system to determine the type of battery pack. The BATID contents are retained as long as Vcc is greater than 2 V. The contents of BATID have no effect on the bq2010. There is no default setting for this register.

In the preferred embodiment of this invention, battery ID resistor 36 is used to perform the function of BATID register, as discussed above. Therefore, the BATID register is not used as described above, but is instead used as mailbox 50 to exchange information such as error information. The organization of mailbox 50 is shown in FIG. 3. Bit 0 contains a location for a device recognized fault error. If electronic device 80 detects an error with battery 30 in a manner that will be described in more detail later, it puts a "1" in the bit 0 position of mailbox 50. Bit 1 contains a location for a support unit recognized fault error. If battery support unit 20 detects an error with battery 30 in a manner that will be described in more detail later, it puts a "1" in the bit 1 position of mailbox 50. Bit 2 contains a location for a battery capacity inaccurate error. If battery support unit 20 detects that the battery capacity of battery 30 is inaccurate in a manner that will be described in more detail later, it puts a "1" in the bit 2 position of mailbox 50. Bit 3 contains a location for a test in progress flag. This flag is not relevant to the invention and will not be discussed further.

Bit 4 contains a location for a last capacity test failed error. If battery support unit 20 detects that the battery 30 failed its capacity test in a manner that will be described in more detail later, it puts a "1" in the bit 4 position of mailbox 50. Bit 5 contains a location for an any capacity test failed error. If battery support unit 20 detects that battery 30 failed any capacity test in a manner that will be described in more detail later, it puts a "1" in the bit 5 position of mailbox 50.

Bits 6 and 7 of mailbox 50 are used to validate that the other bits are correct by providing a two's complement checksum of the other bits in a manner well known to those skilled in the art.

FIG. 4 shows user interface 60 of battery support unit 20 of the preferred embodiment of the invention. User interface 60 contains maintenance portion 61 and charge portion 65. Maintenance portion 61 contains indicator 62. In the preferred embodiment, indicator 62 is illuminated or otherwise enabled when battery support unit 20 determines that battery maintenance is required, in a manner that will be described in more detail later. When indicator 62 is pressed by a user, battery maintenance is performed.

FIG. 5 shows user interface 90 of electronic device 80 of the preferred embodiment of the invention. In the preferred embodiment, user interface 90 is a display screen that contains indicator 91 and device specific display information 95. Indicator 91, when it appears on the display screen of user interface 90, instructs a user to perform maintenance on battery 30. Other types of indicators, such as icons or switches, lights, etc, on a control panel, could be used for indicator 91 and still fall within-the spirit and scope of the invention.

FIGS. 6-7 show the flowchart of the charging operation of battery support unit 20. Block 100 checks to see if a battery is inserted into the charger. When a battery is detected, block 105 reads the contents of mailbox 50 by sending a command to battery 30 to transmit the contents of the register address containing mailbox 50.

Block 110 checks to see if the data contained in mailbox 50 indicates that an error has occurred. For purposes of this discussion, an "error" is defined as the occurrence of an event that indicates that a fault has been detected with the battery that may impact its future performance. A normally functioning rechargeable battery that happens to be discharged and needs to be recharged is not, by itself, considered an "error" for purposes of this invention. When an error is detected, maintenance should normally be performed on battery 50. Errors can be detected and indicated in mailbox 50 by one or more battery support units and/or one or more electronic devices. This is desirable in some operating environments that do not have a one-to-one correspondence of battery support units and electronic devices. One such environment could be a fire station, that might have, for example, four battery support units, ten electronic devices, and thirty batteries--all interchangeable with each other. In this environment, it is desirable for any specific battery support unit to know if another battery support unit detected an error with a particular battery. Likewise, it is desirable for any specific electronic device to know if another electronic device detected an error with a particular battery.

Block 110 checks to see if bits 0, 1, 2, or 4 in mailbox 50 is a "1". Note that a "1" in bit position 5, "Any Capacity Test Failed", is informational in nature and not considered an error of any by itself. If block 110 determines that any of the above bits is a "1", block 115 enables indicator 62 in support unit user interface 60. In the preferred embodiment, this action illuminates a switch that, when pressed by the user, initiates battery maintenance. In the preferred embodiment, maintenance is not initiated automatically but is initiated by a user. This is done because the battery maintenance (described in more detail in FIGS. 8-10) is a lengthy process, often encompassing several hours, and it may not be a convenient time to perform battery maintenance when indicator 62 is first illuminated. However, illumination of indicator 62 puts the user on notice that operation of the battery may not be reliable, and that maintenance should be performed soon. Conversely, when indicator 62 is not illuminated, this tells the user that maintenance is not required, thereby discouraging the user from performing an unnecessary, time consuming process that, if performed more often than needed, could actually shorten-battery life.

An alternate embodiment has been contemplated where maintenance is automatically performed upon the detection of an error in block 110. In this embodiment, block 115 is replaced by a block 115' that automatically selects maintenance. The flowchart of FIG. 6 ends in this embodiment after block 115' is executed.

Block 120 starts the charging operation. In the preferred embodiment, charging of battery 30 is automatically initiated when battery 30 is inserted in or otherwise connected to battery support unit 20. The charging operation shown in block 120 starts with a slow, trickle charge for a short period of time, followed by a normal "fast" charge until the battery is fully charged. During the charging operation, blocks 150-199 execute, looking for various conditions that can occur during the charging operation. Block 150 checks to see if the battery was removed before charging was complete. If so, flow of control returns back to block 100 to check for re-insertion of the battery. If not, block 160 (FIG. 7) checks for a support unit detected error that occurred during the charge operation. Examples of errors that can be detected by block 160 are the following: battery too hot, battery too cold, battery voltage too low, battery voltage too high, battery charging timeout (taking too long to charge). Battery support unit 20 determines if a temperature error has occurred by measuring the voltage across thermistor 35 and converting this voltage to temperature in a known manner. Battery support unit 20 determines if a voltage error has occurred by using a portion of support unit circuitry 28 to measure the voltage across battery 30. Battery support unit 20 determines if a timeout error has occurred by using a timer in processor 21 or support unit circuitry 28 to keep track of the elapsed charging time.

If block 160 detects an error, block 162 writes a support unit recognized error to mailbox 50. This is done by placing a "1" in bit 1 of the word read from mailbox 50, adjusting checksum bits 6 and 7 accordingly, and sending the word back to battery 30 as a request to write data to mailbox 50. Block 164 turns on maintenance request indicator 62. Block 166 enables fail indicator 64 (FIG. 4), and the program ends in block 199.

If block 160 does not detect an error, block 170 checks to see if maintenance has been requested. In the preferred embodiment, maintenance is requested by a user pressing indicator 62, as has been discussed. If block 170 is answered affirmatively, the battery charging operation is stopped in block 175, and the program ends in block 199. If block 170 is answered negatively, block 180 checks to see if the battery is fully charged. This is determined by examining the voltage waveform over time and detecting the peak of the voltage curve by looking for -Δv (the point on the curve the voltage goes down) in a known manner.

If block 180 determines that the battery is not fully charged, flow of control returns to block 120, where the charging operation is continued. If block 180 determines that the battery is fully charged, block 185 stops the charging operation, and flow of control returns to block 150; where the battery is continuously checked for errors until removed from battery support unit 20.

FIGS. 8-10 show the flowchart of the maintenance operation of battery support unit 20 of the preferred embodiment of the invention. Block 200 checks to see if a battery is inserted into the charger. When a battery is detected, block 202 checks to see if maintenance has been selected for this battery. In the preferred embodiment, maintenance is selected by the user pressing indicator button 62, although this selection operation could be performed in a different manner, such as automatically when an error is detected in block 160 of FIG. 7, as has been discussed, and still fall within the spirit and scope of the invention.

When block 202 is answered affirmatively, block 205 reads the contents of mailbox 50 by submitting a request to read data from the mailbox to battery 30. Block 210 resets maintenance request indicator 62.

Block 220 starts the maintenance operation. For purposes of this discussion, the term "maintenance" as used herein shall mean any operation performed on the battery, outside of a single charging operation, intended to prolong the useful life of the battery. For example, the useful life of a NiCad battery can be extended if it is "reconditioned" by charging and discharging the battery a predetermined number of cycles. In the preferred embodiment, maintenance of battery 30 involves the following steps:

1. Charge (trickle/full--typically 3 hours)

2. Cool (60 minutes)

3. Discharge (cleanse battery by fully discharging at a predetermined current drain)

4. Cool (60 minutes)

5. Charge (trickle/full--typically 3 hours)

6. Cool (5 minutes)

7. Supercharge (trickle--10 hours)

8. Cool (60 minutes)

9. Final Discharge (cleanse battery by fully discharging at a predetermined current drain)

10. Cool (60 minutes)

11. Final Charge (trickle/full--typically 3 hours)

Those skilled in the art will appreciate that other types of maintenance could be performed on the battery and still fall within the spirit and scope of the invention. For example, an alternate embodiment has been contemplated where only steps 9 and 11 above are performed during the maintenance operation.

During the maintenance operation, blocks 250-299 execute, looking for various conditions that can occur during the maintenance operation. Block 250 checks to see if the battery was removed before maintenance was complete. If so, flow of control returns back to block 200 to check for re-insertion of the battery. If not, block 260 checks for a support unit detected error that occurred during the maintenance operation. Examples of errors that can be detected by block 260 are the following: battery too hot, battery too cold, battery voltage too low, battery voltage too high, battery charging timeout (taking too long to charge). As previously discussed, battery support unit 20 determines if a temperature error has occurred by reading the voltage level on thermistor 35. Battery support unit 20 determines if a voltage error has occurred by using a portion of support unit circuitry 28 to measure the voltage across battery 30. Battery support unit 20 determines if a timeout error has occurred by using a timer in processor 21 or support unit circuitry 28 to keep track of the elapsed charging time.

If block 260 detects an error, block 262 writes a support unit recognized error to mailbox 50. This is done by placing a "1" in bit 1 of the word read from mailbox 50, adjusting checksum bits 6 and 7 accordingly, and sending the word back to battery 30 as a request to write data to mailbox 50. Block 264 turns on maintenance request indicator 62. Block 266 enables fail indicator 64 (FIG. 4), and the program ends in block 299.

If block 260 does not detect an error, block 270 checks to see if the maintenance operation has started the final discharge cycle. If not, flow of control returns to block 220 to continue the battery maintenance operation. If so, block 275 measures the capacity of the battery as the final discharge cycle is performed. This is done by keeping track of the amount of charge delivered from the battery during the final discharge cycle and comparing it with the theoretical capacity of the battery. Block 278 performs the last charge of battery 30. If the amount of charge delivered from the battery during the last discharge cycle is not within a predetermined range of the theoretical capacity of the battery, block 280 is answered negatively. Block 282 writes a last capacity test failed error to mailbox 50. This is done by placing a "1" in bit 4 of the word in mailbox 50. Block 284 writes an any capacity test failed error to mailbox 50. This is done by placing a "1" in bit 5 of mailbox 50, adjusting checksum bits 6 and 7 to account for the changes in the mailbox bits, and sending the word back to battery 30 as a request to write data to mailbox 50. Block 286 enables fail indicator 64 (FIG. 4), and flow of control moves to block 290 (FIG. 10). Flow of control also moves to block 290 if block 280 is answered affirmatively.

Referring now to FIG. 10, block 290 reads the battery capacity from battery memory 40. Specifically, block 290 sends a request to battery 30 to read the contents of NACH and NACL fields 41-4 and 41-5 in memory 40 (FIG. 2). Block 292 then checks to see if the support unit determined battery capacity (determined in block 275) is within range of the battery determined battery capacity (NACH and NACL registers). If not, the battery determined battery capacity is inaccurate, and block 293 writes a battery capacity inaccurate error to mailbox 50 by putting a "1" in bit position 2 and adjusting the checksum bits accordingly. Block 295 enables fail indicator 64. If block 292 is answered affirmatively, block 296 enables pass indicator 63 (FIG. 4). Block 297 writes updated mailbox data (zeroing out old errors, writing a "1" for new errors, and updating checksum bits) to mailbox 50. Regardless how block 292 is answered, flow of control eventually finds its way to block 299, where the program ends.

FIG. 11 shows the flowchart of the operation of the electronic device of the preferred embodiment of the invention. Block 300 checks to see if a battery is inserted into the electronic device. When a battery is detected, block 305 reads the contents of mailbox 50 by submitting a request to read data from the mailbox to battery 30.

Block 310 checks to see if the data contained in mailbox 50 indicates that an error has occurred. Errors can be detected and indicated in mailbox 50 by one or more battery support units and/or one or more electronic devices. Block 310 checks to see if bits 0, 1, 2, or 4 is a "1". Note that a "1" in bit position 5, "Any Capacity Test Failed", is informational in nature and not considered an error of any by itself.

If block 310 determines that any of the above bits is a "1", block 315 enables indicator 91 in support unit user interface 90. In the preferred embodiment, this action displays indicator 91 as a "Check Battery" message on the display screen of electronic device 80, although other forms of indication could be used. In the preferred embodiment, maintenance is not performed by electronic device 80 but instead is performed by battery support unit 20.

Block 320 starts the device operation. This operation is highly dependent on the function of electronic device 80. For example, if electronic device 80 was a portable computer, block 320 would start normal computer operations. In the preferred embodiment, electronic device 80 is a defibrillator/heart monitor, so block 320 would initiate the normal operation of the defibrillator/heart monitor.

During the device operation, blocks 350-399 execute, looking for various conditions that can occur during the device operation. Block 350 checks to see if the battery was removed during the device operation. If so, flow of control returns back to block 300 to check for re-insertion of the battery. If not, block 360 checks to see if the battery voltage is out of range. Specifically, block 360 determines if the actual voltage decay over time as charge in the battery is depleted is within range of what is expected from the battery. Stated another way, block 360 periodically requests to read data from memory 40 of battery 30 (e.g., NACH/NACL registers 41-4 and 41-5) to make sure that the battery's information on how much charge it has left is based in reality, and that the voltage doesn't drop off too fast (i.e. voltage depression) and fail to give the user adequate warning of a low battery.

If block 360 detects an error, block 362 writes a device recognized error to mailbox 50. This is done by placing a "1" in bit 0 of the word read from mailbox 50, adjusting checksum bits 6 and 7 accordingly, and sending the word back to battery 30 as a request to write data to mailbox 50. Block 364 turns on check battery indicator 91, and flow of control returns to block 320 to continue device operation--at least until the battery dies. If block 360 determines the battery voltage is not out of range, flow of control also returns to block 320.

FIG. 12 shows the flowchart of the operation of the battery of the preferred embodiment of the invention. The execution of the blocks shown in FIG. 12 do not require that an elaborate communications mechanism be present in battery 30--just the ability to have data read into and out of memory 40. As previously discussed, the batteries of various alternate embodiments (e.g., Econoram, EEPROM) contain a sufficient communications mechanism in memory 40 to perform the execution of the flowchart of FIG. 12. Block 400 checks to see if any requests have arrived from a battery support unit or an electronic device to write data to mailbox 50. In the preferred embodiment, these requests are submitted in two parts: Command+register address; data. If so, block 405 stores the data in mailbox 50. Block 410 checks to see if any requests have arrived from a battery support unit or an electronic device to read data from mailbox 50. If so, block 405 transmits the data contained in the specified register of mailbox 50 to the requester. Block 420 checks to see if any requests have arrived from a battery support unit or an electronic device to write status data to memory 40. While not discussed previously, some of the registers in memory 40 are writable fields, such as LMD field 41-6. If so, block 405 stores the data in the appropriate register of mailbox 50. Block 430 checks to see if any requests have arrived from a battery support unit or an electronic device to read status data from memory 40. If so, block 435 transmits the data contained in the specified register of memory 40 to the requester. 

What is claimed is:
 1. A method of exchanging information amongst components of a battery system comprising a battery, a battery support unit for testing said battery and an electronic device powered by said battery, said battery having storage cells and a battery memory, said method comprising the steps of:placing said battery in said battery support unit; said battery support unit testing said battery for a first error condition; said battery support unit detecting a first error condition in said battery; said battery support unit transmitting first error data to a mailbox located in said battery memory, responsive to said detecting said first error condition step; removing said-battery from said battery support unit; placing said battery in said electronic device; said electronic device reading said first error data in said mailbox located in said battery memory; and said electronic device enabling a first indicator in response to said reading said first error data step.
 2. The method of claim 1, further comprising the steps of:said electronic device testing said battery for a second error condition; said electronic device detecting a second error condition in said battery; said electronic device transmitting second error data to said mailbox located in said battery memory, responsive to said detecting a second error condition step; removing said battery from said electronic device; placing said battery in said battery support unit; said battery support unit reading said second error data in said mailbox located in said battery memory; said battery support unit enabling a second indicator in response to said reading said second error data.
 3. The method of claim 2, wherein said second indicator instructs a user to perform maintenance on said battery.
 4. The method of claim 1, further comprising the step of:reading battery determined battery capacity data placed in said battery memory by said battery.
 5. The method of claim 4, further comprising the step of:comparing said battery determined .battery capacity data with support unit determined battery capacity data.
 6. The method of claim 5, further comprising the step of:charging said battery.
 7. The method of claim 5, further comprising the steps of:detecting that maintenance for said battery has been selected; charging and discharging said battery a predetermined number of times.
 8. A battery system, comprising:a battery, further comprising:storage cells; a battery memory; communications logic; a battery support unit for testing said battery, further comprising: a support unit processor further comprising battery test logic; an electronic device powered by said battery, further comprising:a device processor further comprising battery monitor logic; device circuitry connected to said device processor wherein said battery test logic:tests said battery for a first error condition; detects a first error condition in said battery; transmits first error data to a mailbox located in said battery memory, responsive to detecting said first error condition; wherein said battery monitor logic;reads said first error data in said mailbox located in said battery memory; and enables a first indicator in response to reading said first error data.
 9. The system of claim 8, wherein said battery monitor logic:monitors said battery for a second error condition; detects a second error condition in said battery; transmits second error data to said mailbox located in said battery memory, responsive to detecting a second error condition; wherein said battery test logic:reads said second error data in said mailbox located in said battery memory; and enables a second indicator in response to reading said second error data.
 10. The system of claim 8, wherein said battery support unit further comprises: charger circuitry connected to said device processor.
 11. The system of claim 9, wherein said second indicator instructs a user to perform maintenance on said battery.
 12. The system of claim 10, wherein said first error condition is a battery too hot condition.
 13. The system of claim 10, wherein said first error condition is a battery too cold condition.
 14. The system of claim 10 wherein said first error condition is a battery voltage too high condition.
 15. The system of claim 10, wherein said first error condition is a battery voltage too low condition.
 16. The system of claim 10, wherein said first error condition is a battery support unit timeout condition.
 17. The system of claim 10, wherein said first error condition is a battery capacity out of range condition.
 18. The system of claim 10, wherein said battery test logic reads battery determined battery capacity data placed in said battery memory by said battery.
 19. The system of claim 18, wherein said battery test logic compares said battery determined battery capacity data with support unit determined battery capacity data.
 20. The system of claim 19, wherein said first error condition is a battery capacity inaccurate condition.
 21. The system of claim 20, wherein said second error condition is a battery voltage out of range condition.
 22. The system of claim 21, wherein said processor further comprises battery maintenance logic, wherein said battery maintenance logic:detects that maintenance for said battery has been selected; charges and discharges said battery a predetermined number of times. 